<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        * {
            box-sizing:border-box;
        }
        html,body{
            margin:0;
            padding:0;
            height:100%;
            width:100%;
        }
        .top{
           height:50px;
           position:fixed;
            width: 100%;
           background: darkgray;
        }
        .contentWarp{
            height:100%;
        }
        /*
            ~ 同级选择器
            要求同级就行

            + 毗邻选择器
            要求必须仅邻的下个元素

            这里要求的下个元素 是根据html源码查找，和页面上渲染后的元素位置无关
        */
        .top ~ .contentWarp{
            padding-top:50px;
        }
        .bottom +  .contentWarp{
            padding-bottom:50px;
        }
        .content{
            overflow:auto;
            height:100%;
            background:lightblue;
        }
        .bottom{
            width: 100%;
            position: fixed;
            bottom:0;
            height:50px;
            background:lightcyan;
        }

        #borderLayoutArticle{
            height:1800px;
            padding:10px;
            font-size:16px;
        }
    </style>
</head>
<body>
    <div class="top">
        top
    </div>

    <div class="bottom">
       bottom
    </div>

    <div class="contentWarp">
        <div class="content">
            <article id="borderLayoutArticle">
                #####  height:100% 总是找父元素的content高度来计算
                其次 可以通过box-sizing:border-box
                来调整当前元素的height = contentHeight + paddingHeight + borderHeight
                来实现上下固定布局
                这也是常见ccs框架中
                *{
                box-sizing:border-box;
                }
                的原因
                ##### 把content写在下面 是方便css的同级选择器生效，有利于兼容没有头，没有尾的情况中间部分可以自动适应
            </article>

        </div>
    </div>

</body>
</html>